<?php

namespace app\logic\im;

use app\logic\im\BaseLogic;
// use app\common\model\User;
// use app\admin\model\im\Account AS ImAccount;

// use app\common\enum\fp\PaymentType;
// use app\common\model\fp\PostAudit;
// use app\common\model\fp\PostIndex;
// use app\common\model\fp\PostMedia;

// use think\facade\Event;
// use think\facade\Log;

class MsgLogic extends BaseLogic
{
    // 发送系统消息
    public function sendSystemMsg(int $user_id, array $data)
    {
        $post_data = [
            'SyncOtherMachine' => 1, // 若不希望将消息同步至 From_Account，则 SyncOtherMachine 填写2；若希望将消息同步至 From_Account，则 SyncOtherMachine 填写1
            'From_Account' => $this->im_config['system_notifications_account'], // 系统消息用户
            'To_Account' => $this->im_config['prefix'] . $user_id, // 接收消息的用户
            'OnlineOnlyFlag' => 0, // 默认为 0，表示消息存历史聊天记录 1表示消息不存历史聊天记录，即发送消息时，若接收方在线，则能收到此消息，若接收方不在线，则收不到该消息。适用于实现一些实时状态类的功能，如实现“对方正在输入”功能
            'MsgRandom' => rand(0, 4294967295), // 随机数
            'MsgBody' => [
                [
                    'MsgType' => 'TIMCustomElem', // 自定义消息类型
                    'MsgContent' => [
                        'Data' => json_encode($data)
                    ]
                ]
            ]
        ];

        $path = 'v4/openim/sendmsg';

        return $this->postraw($path, $post_data);
    }
}